package com.ourteam.system.service;

/**
 *
 * Template Name : 业务服务实现基类
 * Template Version : 1
 * Template Last Modfiy Date : Mon Nov 06 10:52:01 CST 2017
 * Auto Generate Date : 2018-07-20 12:04:38
  * Warning ! This file will be overwrite when regenerate !
  *
 */
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;


abstract class AbstractSystemEventLogService extends net.service.DefaultServiceImpl
    implements ISystemEventLogService {
    protected static final Log logger = LogFactory.getLog(AbstractSystemEventLogService.class);

    /**
     * SysEventLog DAO Instance
    */
    protected com.ourteam.system.dao.ISysEventLogDAO sysEventLogDao;

    /**
     * SysEventLogType DAO Instance
    */
    protected com.ourteam.system.dao.ISysEventLogTypeDAO sysEventLogTypeDao;

    /**
         *  Get SysEventLog DAO Instance
         */
    public com.ourteam.system.dao.ISysEventLogDAO getSysEventLogDao() {
        return sysEventLogDao;
    }

    /**
         *  Set SysEventLog DAO Instance
         */
    public void setSysEventLogDao(com.ourteam.system.dao.ISysEventLogDAO aDao) {
        sysEventLogDao = aDao;
    }

    /**
         *  Get SysEventLogType DAO Instance
         */
    public com.ourteam.system.dao.ISysEventLogTypeDAO getSysEventLogTypeDao() {
        return sysEventLogTypeDao;
    }

    /**
         *  Set SysEventLogType DAO Instance
         */
    public void setSysEventLogTypeDao(
        com.ourteam.system.dao.ISysEventLogTypeDAO aDao) {
        sysEventLogTypeDao = aDao;
    }

    /**
     * 查询系统事件日志
    
     * @param queryBean
    
     * @throws Exception
     */
    protected abstract com.ourteam.system.domain.SystemEventLogBean[] doQuerySystemEventLog(
        final com.ourteam.system.dao.SysEventLogDAOQueryBean queryBean)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public com.ourteam.system.domain.SystemEventLogBean[] querySystemEventLog(
        final com.ourteam.system.dao.SysEventLogDAOQueryBean queryBean)
        throws Exception {
        try {
            com.ourteam.system.domain.SystemEventLogBean[] result = doQuerySystemEventLog(queryBean);

            return result;
        } catch (Exception e) {
            logger.error("do querySystemEventLog error", e);
            throw e;
        }
    }

    /**
     * 查询系统时间日志数量
    
     * @param queryBean
    
     * @throws Exception
     */
    protected abstract int doQuerySystemEventLogCount(
        final com.ourteam.system.dao.SysEventLogDAOQueryBean queryBean)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public int querySystemEventLogCount(
        final com.ourteam.system.dao.SysEventLogDAOQueryBean queryBean)
        throws Exception {
        try {
            int result = doQuerySystemEventLogCount(queryBean);

            return result;
        } catch (Exception e) {
            logger.error("do querySystemEventLogCount error", e);
            throw e;
        }
    }

    /**
     * 添加系统事件日志
    
     * @param eventTypeCode
    
     * @param systemEventLog
    
     * @param eventContentObject
    
     * @throws Exception
     */
    protected abstract void doAddSystemEventLog(final String eventTypeCode,
        final com.ourteam.system.domain.SystemEventLogBean systemEventLog,
        final Object eventContentObject) throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public void addSystemEventLog(final String eventTypeCode,
        final com.ourteam.system.domain.SystemEventLogBean systemEventLog,
        final Object eventContentObject) throws Exception {
        try {
            if (eventTypeCode == null) {
                throw new org.apache.commons.lang.NullArgumentException(
                    "The Parameter [eventTypeCode] Value is NULL");
            }

            if (systemEventLog == null) {
                throw new org.apache.commons.lang.NullArgumentException(
                    "The Parameter [systemEventLog] Value is NULL");
            }

            doAddSystemEventLog(eventTypeCode, systemEventLog,
                eventContentObject);
        } catch (Exception e) {
            logger.error("do addSystemEventLog error", e);
            throw e;
        }
    }

    /**
     * 根据ID取得系统日志
    
     * @param systemEventLogId
    
     * @throws Exception
     */
    protected abstract com.ourteam.system.domain.SystemEventLogBean doGetSystemEventLogById(
        final long systemEventLogId) throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public com.ourteam.system.domain.SystemEventLogBean getSystemEventLogById(
        final long systemEventLogId) throws Exception {
        try {
            com.ourteam.system.domain.SystemEventLogBean result = doGetSystemEventLogById(systemEventLogId);

            return result;
        } catch (Exception e) {
            logger.error("do getSystemEventLogById error", e);
            throw e;
        }
    }

    /**
     * 查询系统事件日志类型
    
     * @param queryBean
    
     * @throws Exception
     */
    protected abstract com.ourteam.system.domain.SystemEventLogTypeBean[] doQuerySystemEventLogType(
        final com.ourteam.system.dao.SysEventLogTypeDAOQueryBean queryBean)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public com.ourteam.system.domain.SystemEventLogTypeBean[] querySystemEventLogType(
        final com.ourteam.system.dao.SysEventLogTypeDAOQueryBean queryBean)
        throws Exception {
        try {
            com.ourteam.system.domain.SystemEventLogTypeBean[] result = doQuerySystemEventLogType(queryBean);

            return result;
        } catch (Exception e) {
            logger.error("do querySystemEventLogType error", e);
            throw e;
        }
    }

    /**
     * 查询系统事件日志类型数量
    
     * @param queryBean
    
     * @throws Exception
     */
    protected abstract int doQuerySystemEventLogTypeCount(
        final com.ourteam.system.dao.SysEventLogTypeDAOQueryBean queryBean)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public int querySystemEventLogTypeCount(
        final com.ourteam.system.dao.SysEventLogTypeDAOQueryBean queryBean)
        throws Exception {
        try {
            int result = doQuerySystemEventLogTypeCount(queryBean);

            return result;
        } catch (Exception e) {
            logger.error("do querySystemEventLogTypeCount error", e);
            throw e;
        }
    }

    /**
     * 添加系统事件类型
    
     * @param systemEventLogType
    
     * @throws Exception
     */
    protected abstract void doAddSystemEventLogType(
        final com.ourteam.system.domain.SystemEventLogTypeBean systemEventLogType)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public void addSystemEventLogType(
        final com.ourteam.system.domain.SystemEventLogTypeBean systemEventLogType)
        throws Exception {
        try {
            if (systemEventLogType == null) {
                throw new org.apache.commons.lang.NullArgumentException(
                    "The Parameter [systemEventLogType] Value is NULL");
            }

            doAddSystemEventLogType(systemEventLogType);
        } catch (Exception e) {
            logger.error("do addSystemEventLogType error", e);
            throw e;
        }
    }

    /**
     * 修改系统事件类型
    
     * @param systemEventLogType
    
     * @throws Exception
     */
    protected abstract void doModifySystemEventLogType(
        final com.ourteam.system.domain.SystemEventLogTypeBean systemEventLogType)
        throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public void modifySystemEventLogType(
        final com.ourteam.system.domain.SystemEventLogTypeBean systemEventLogType)
        throws Exception {
        try {
            if (systemEventLogType == null) {
                throw new org.apache.commons.lang.NullArgumentException(
                    "The Parameter [systemEventLogType] Value is NULL");
            }

            doModifySystemEventLogType(systemEventLogType);
        } catch (Exception e) {
            logger.error("do modifySystemEventLogType error", e);
            throw e;
        }
    }

    /**
     * 删除系统事件类型
    
     * @param systemEventLogTypeIds
    
     * @throws Exception
     */
    protected abstract void doDeleteSystemEventLogTypes(
        final long[] systemEventLogTypeIds) throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public void deleteSystemEventLogTypes(final long[] systemEventLogTypeIds)
        throws Exception {
        try {
            doDeleteSystemEventLogTypes(systemEventLogTypeIds);
        } catch (Exception e) {
            logger.error("do deleteSystemEventLogTypes error", e);
            throw e;
        }
    }

    /**
     * 根据ID取得系统事件类型
    
     * @param systemEventLogTypeId
    
     * @throws Exception
     */
    protected abstract com.ourteam.system.domain.SystemEventLogTypeBean doGetSystemEventLogTypeById(
        final long systemEventLogTypeId) throws Exception;

    /**
     * $method.description
    
     * @throws Exception
     */
    public com.ourteam.system.domain.SystemEventLogTypeBean getSystemEventLogTypeById(
        final long systemEventLogTypeId) throws Exception {
        try {
            com.ourteam.system.domain.SystemEventLogTypeBean result = doGetSystemEventLogTypeById(systemEventLogTypeId);

            return result;
        } catch (Exception e) {
            logger.error("do getSystemEventLogTypeById error", e);
            throw e;
        }
    }
}
